@@ -13,7 +13,7 @@ from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfo  | 
            ||
| 13 | 13 | 
                from operation.models import GuestEntranceControlInfo  | 
            
| 14 | 14 | 
                from utils.error.errno_utils import LensmanStatusCode, UserStatusCode  | 
            
| 15 | 15 | 
                from utils.error.response_utils import response  | 
            
| 16 | 
                -from utils.ip_utils import ip_addr  | 
            |
| 16 | 
                +from utils.ip_utils import get_client_ip  | 
            |
| 17 | 17 | 
                from utils.redis.rguest import get_guest_entrance_control  | 
            
| 18 | 18 | 
                from utils.redis.rprofile import set_profile_info  | 
            
| 19 | 19 | 
                from utils.version_utils import is_version_match  | 
            
                @@ -56,7 +56,7 @@ def user_signup_api(request):  | 
            ||
| 56 | 56 | 
                return response(UserStatusCode.USERNAME_HAS_REGISTERED)  | 
            
| 57 | 57 | 
                 | 
            
| 58 | 58 | 
                # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户  | 
            
| 59 | 
                - signup_ip, signup_at = ip_addr(request), tc.utc_datetime()  | 
            |
| 59 | 
                + signup_ip, signup_at = get_client_ip(request), tc.utc_datetime()  | 
            |
| 60 | 60 | 
                 | 
            
| 61 | 61 | 
                try:  | 
            
| 62 | 62 | 
                user = UserInfo.objects.select_for_update().get(user_id=user_id)  | 
            
                @@ -96,7 +96,7 @@ def user_login_api(request):  | 
            ||
| 96 | 96 | 
                except UserInfo.DoesNotExist:  | 
            
| 97 | 97 | 
                return response(UserStatusCode.USER_NOT_FOUND)  | 
            
| 98 | 98 | 
                 | 
            
| 99 | 
                - login_ip, login_at = ip_addr(request), tc.utc_datetime()  | 
            |
| 99 | 
                + login_ip, login_at = get_client_ip(request), tc.utc_datetime()  | 
            |
| 100 | 100 | 
                 | 
            
| 101 | 101 | 
                if not check_password(password, user.password):  | 
            
| 102 | 102 | 
                UserLoginLogInfo.objects.create(  | 
            
                @@ -156,7 +156,7 @@ def user_wx_authorize_api(request):  | 
            ||
| 156 | 156 | 
                # unionid 不存在  | 
            
| 157 | 157 | 
                # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户  | 
            
| 158 | 158 | 
                 | 
            
| 159 | 
                - signup_ip, signup_at = ip_addr(request), tc.utc_datetime()  | 
            |
| 159 | 
                + signup_ip, signup_at = get_client_ip(request), tc.utc_datetime()  | 
            |
| 160 | 160 | 
                 | 
            
| 161 | 161 | 
                try:  | 
            
| 162 | 162 | 
                user = UserInfo.objects.select_for_update().get(user_id=user_id)  | 
            
                @@ -18,7 +18,7 @@ from photo.models import PhotosInfo  | 
            ||
| 18 | 18 | 
                from photo.serializers import PhotosInfoSerializer  | 
            
| 19 | 19 | 
                from utils.error.errno_utils import LensmanStatusCode, PhotoStatusCode  | 
            
| 20 | 20 | 
                from utils.error.response_utils import response  | 
            
| 21 | 
                -from utils.ip_utils import ip_addr  | 
            |
| 21 | 
                +from utils.ip_utils import get_client_ip  | 
            |
| 22 | 22 | 
                from utils.redis.rgroup import get_group_info, set_group_info, set_group_users_info  | 
            
| 23 | 23 | 
                from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET,  | 
            
| 24 | 24 | 
                GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, UUID_LIST)  | 
            
                @@ -125,7 +125,7 @@ def session_join_api(request):  | 
            ||
| 125 | 125 | 
                     user, user_created = UserInfo.objects.get_or_create(user_id=user_id, defaults={
               | 
            
| 126 | 126 | 
                'user_id': CurtailUUID.uuid(UserInfo, 'user_id'),  | 
            
| 127 | 127 | 
                'user_status': UserInfo.ASSIGN,  | 
            
| 128 | 
                - 'assign_ip': ip_addr(request),  | 
            |
| 128 | 
                + 'assign_ip': get_client_ip(request),  | 
            |
| 129 | 129 | 
                'assign_at': tc.utc_datetime(),  | 
            
| 130 | 130 | 
                })  | 
            
| 131 | 131 | 
                user_id = user.user_id  | 
            
                @@ -1,5 +1,10 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                 | 
            
| 4 | 
                -def ip_addr(request):  | 
            |
| 5 | 
                - return request.META['HTTP_X_FORWARDED_FOR'] if 'HTTP_X_FORWARDED_FOR' in request.META else request.META['REMOTE_ADDR']  | 
            |
| 4 | 
                +def get_client_ip(request):  | 
            |
| 5 | 
                +    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
               | 
            |
| 6 | 
                + if x_forwarded_for:  | 
            |
| 7 | 
                +        ip = x_forwarded_for.split(',')[0]
               | 
            |
| 8 | 
                + else:  | 
            |
| 9 | 
                +        ip = request.META.get('REMOTE_ADDR')
               | 
            |
| 10 | 
                + return ip  |